In distributed data systems it is known to use data storage servers to store data associated with a plurality of clients. The client/server model enables the clients and the servers to exchange data, and thus provides a convenient way to interconnect hardware and software that are distributed efficiently across different devices and different locations.
Typically, while the server has sufficient available resources to process and service an incoming request(s), the server will proceed without delay to service such incoming transactions. However, when the server is already operating at full or near full capacity, the server may not be able to commence service immediately upon receiving the additional transaction(s). In this case, the server may temporarily store one or more pending transaction(s) in a buffer (typically a substantially temporary storage medium). When more than one transaction is forwarded to the buffer, the server may create a queue of pending transactions. The pending transactions queue usually includes all the pending transactions which are waiting to be serviced. In the queue, the pending transactions are commonly sorted by their time of arrival into the buffer or into the server.
The server-managed pending transactions queue commonly does not take into account considerations relating to the client's needs. Consequently, transactions which may be regarded under certain circumstances by the client as “high priority” transactions may linger within the buffer, while “low priority” transactions are being serviced, and vice-versa.
Thus, there is a need for a system, a method and a circuit for managing a pending transaction queue in a data server. There is a further need to provide a system, a method and a circuit implementing a QoS (Quality of Service) policy for managing a pending transaction queue in a data server. There is yet a further need to provide a system, a method and a circuit for prioritizing transactions within a pending transaction queue in a data server in accordance with one or more priority level requests generated by the clients.